package com.example.controller;

import com.example.entity.Comment;
import com.example.entity.Forum;
import com.example.entity.User;
import com.example.service.CommentService;
import com.example.service.ForumService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * 评论控制器，处理与评论相关的请求
 */
@Controller
@RequestMapping("/comment")
public class CommentController {
    // 自动注入评论服务
    @Autowired
    private  CommentService commentService;

    // 自动注入论坛服务
    @Autowired
    private ForumService forumService;

    /**
     * 添加评论的方法
     * @param shareId 分享的ID
     * @param content 评论的内容
     * @param session Http会话，用于获取当前用户信息
     * @param model 用于向视图传递数据
     * @return 重定向的页面路径
     */
    @PostMapping("/addComment")
    public String addComment(@RequestParam("share_id") Integer shareId,
                             @RequestParam("content") String content,
                             HttpSession session,
                             Model model) {
        // 从session获取当前用户ID
        User user = (User) session.getAttribute("login_user");

        // 检查用户是否登录，如果未登录则重定向到登录页
        if (user.getUser_id() == null) {
            return "redirect:/user/login";
        }

        // 创建一个新的评论对象
        Comment comment = new Comment();
        comment.setUser_id(user.getUser_id());
        comment.setShare_id(shareId);
        comment.setContent(content);

        // 调用评论服务添加评论
        commentService.addComment(comment);

        // 调用论坛服务添加论坛信息
        int check=forumService.addForum(user.getUser_id(),content);

        // 获取用户的论坛列表
        List<Forum> forumList=forumService.listForum(user.getUser_id());

        // 将论坛列表添加到模型中，以便在视图中显示
        model.addAttribute("forumList",forumList);

        // 重定向回论坛页面
        return "Forum/forum";
    }
}